refactor(lsp): simplify server management and installer flow#1929
Conversation
Greptile SummaryThis is a substantial, well-motivated refactor that separates the monolithic LSP system into a layered architecture: a public Issues found:
Confidence Score: 3/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["acode.js / editorManager.js"] --> B["lspApi (api.ts)"]
B --> C["serverRegistry.ts\n(register/list/update)"]
B --> D["serverCatalog.ts\n(bundle ownership)"]
D -->|"bindServerRegistry"| C
D -->|"ensureBuiltinBundlesRegistered"| E["servers/index.ts"]
E --> F["javascript.ts\nJavaScript / TS / ESLint"]
E --> G["python.ts\nPython pylsp"]
E --> H["luau.ts\nLuau (custom hooks)"]
E --> I["web.ts\nHTML / CSS / JSON"]
E --> J["systems.ts\nC/C++, Go, Rust"]
K["serverLauncher.ts"] -->|"checkServerInstallation\ninstallServer\nuninstallServer"| L["installRuntime.ts\nshell execution"]
K -->|"getServerBundle"| D
K -->|"buildShellArchCase"| M["installerUtils.ts\narch normalization"]
N["lspSettings.js"] -->|"add custom server"| O["lspConfigUtils.js\npersist settings"]
N -->|"list servers"| C
O --> B
P["lspServerDetail.js"] -->|"install / update / uninstall"| K
P -->|"persist config"| O
P -->|"get server"| B
|
|
@greptileai review it |
Summary
What Changed
serverRegistryinto dedicated server manifest modules.acode.lspAPI around server/bundle registration helpers.lspServerDetail:Why